package com.example.service;

import com.example.dao.GoodstypesInfoDao;
import com.example.entity.*;
import com.example.entity.GoodstypesInfo;
import com.example.exception.CustomException;
import com.example.vo.GoodstypesInfoVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

@Service
public class GoodstypesInfoService {

    @Resource
    private GoodstypesInfoDao goodstypesInfoDao;
	
	
	//kuabiaojisuan3

    public GoodstypesInfo add(GoodstypesInfo goodstypesInfo) {
        //shangxchxuantupxian
        // 唯一校验
        int count = goodstypesInfoDao.checkRepeat("types", goodstypesInfo.getTypes(), null);
if (count > 0) {
	throw new CustomException("1001", "该类别\"" + goodstypesInfo.getTypes() + "\"已存在");
}
      // goodstypesInfo.setAccount((double) 0);
	  
        goodstypesInfoDao.insertSelective(goodstypesInfo);
        return goodstypesInfo;
    }
	
	public List<Map<String,String>> findByDiqu() {
        return goodstypesInfoDao.findByDiqu();
    }

    public void delete(Long id) {
        goodstypesInfoDao.deleteByPrimaryKey(id);
    }

    public void update(GoodstypesInfo goodstypesInfo) {
        //shangxchxuantupxian
		//youdianzan
        goodstypesInfoDao.updateByPrimaryKeySelective(goodstypesInfo);
    }

    public GoodstypesInfo findById(Long id) {
        return goodstypesInfoDao.selectByPrimaryKey(id);
    }
	
    public List<GoodstypesInfoVo> findAll() {
        return goodstypesInfoDao.findByTypes("all");
    }

    public PageInfo<GoodstypesInfoVo> findPage(String types, Integer pageNum, Integer pageSize, HttpServletRequest request) {
        PageHelper.startPage(pageNum, pageSize);
		
		List<GoodstypesInfoVo> all=null;
        Account user = (Account) request.getSession().getAttribute("user");
        if (user.getLevel().equals("管理员")) {all = goodstypesInfoDao.findByTypes(types);}
		
        
        return PageInfo.of(all);
    }
	
	public PageInfo<GoodstypesInfoVo> findPageqt(String types, Integer pageNum, Integer pageSize, HttpServletRequest request) {
        PageHelper.startPage(pageNum, pageSize);
		
		List<GoodstypesInfoVo> all=null;
        Account user = (Account) request.getSession().getAttribute("user");
        all = goodstypesInfoDao.findByTypes(types);
		
	
	
        
        return PageInfo.of(all);
    }

   // public GoodstypesInfoVo findByUserName(String name) {
//        return goodstypesInfoDao.findByUsername(name);
//    }

	//yoxulogindenxglu
	
    public void changeStatus(Long id) {
        GoodstypesInfo goodstypesInfo = goodstypesInfoDao.selectByPrimaryKey(id);
        if(goodstypesInfo.getStatus().equals("是")){
            goodstypesInfo.setStatus("否");
            goodstypesInfoDao.updateByPrimaryKey(goodstypesInfo);
        }else if(goodstypesInfo.getStatus().equals("否")){
            goodstypesInfo.setStatus("是");
            goodstypesInfoDao.updateByPrimaryKey(goodstypesInfo);
        }
    }
	//ddaizdhifu
	//youtixing
	
	
	
	
	
	//xiugaimimazys
	
}
